1. Field of the Invention
The invention relates generally to graphical display of data, and in particular, to displaying a graph view of multiply connected objects.
2. Background Information
Visualization of and interaction with data helps users quickly understand the types of data available and their interrelationships. Often, sets of data are presented as lists, or tables with columns, depicting specific attributes of each instance of data. Analyzing and understanding the nature and state of units of data, and appreciating any subtle relationships and connections therebetween, can be difficult and time consuming. For example, in a screen display, large sets of textual data cannot fit on a single display without the user having to scroll or page, whereby a user cannot retain a view of all the data at once. A conventional solution is to draw a graph of objects with lines indicating relationships between pairs of objects, and some arbitrary shape representing each instance of an object. Typically, the scale of the graph can be controlled, and the data arranged in such a way that all data or a selection of data can be viewed in a single screen. An example of this is a unified modeling language (UML) editor, which allows users to examine a set of object classes and the relationships between them. The user can move around the graph, zoom into items of interest and view details of specific classes (e.g., zoom into objects in the graph and identify relationships that exist between classes).
When interacting with a graph, a common technique is to select an object, or objects, and then apply some function to them (e.g., adding an attribute that indicates that the status of the selected objects is “approved”). Similarly, to redraw the graph from a different root object, a user may select the new object, and select a function to redraw. When an object or a connector line is selected, it is typically highlighted or enhanced in some visual manner. In a graph, where it is not possible to provide the ability to tab between different objects and perhaps read out the object details using screen reader technology, navigating the graph to select which objects for application of functions is difficult for a user with restricted view of the graph (e.g., due to vision impairment).
Drawing graphs requires the ability to analyze the relationships between data objects and calculate the coordinates of each data object in a display that is easy to comprehend. Various solutions exist to draw datasets as graphs. An approach for drawing object graphs in a browser client is to use Cascading Style Sheets (CSS) to display HTML elements as boxes, connected by lines. Arrow heads are simulated by using a scheme with beveled outline styles. The entire graph can be represented by normal HTML elements, and with a suitable style sheet applied, the elements can appear as a visual graph. This is efficient in terms of storage and memory requirements, portable across different browsers, and is accessible by screen readers, due to the textual nature of the data definitions. This is suitable for simple graphs, but it would not easily apply to more densely populated object graphs where multiple intersecting connections occur between objects. It would also not easily lend itself to scaling and graphical transformations. There are browser differences in CSS compliance that need to be considered.
Understanding the contents and structure of a graph is simplified when all the elements and relationships between them are visible to the user. The user can quickly select any element and perform some action on it. However, if the view of the graph elements is restricted in some way, navigating and selecting graph elements is difficult and confusing. This is exacerbated when the graph is very dense with many intersecting connections obscuring the structure, or the user may have chosen to inspect a subset of the graph, (by zooming into an area), or the user may be unable to see the graph at all because of a vision impairment.
Screen readers are available for reading text being displayed. However, this technology is often specific to a particular operating system, browser, or programming environment. In a web browser environment, screen readers may be unable to read text that is rendered in a graph using vector graphics technology, such as Scalable Vector Graphics (SVG) or Vector Markup Language (VML).